<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="./src/css/index.css">
    <title>Git 项目模板</title>
</head>

<body>

    <main>
        <!-- 墨杉的修改 -->
        <h1>墨杉宇宙无敌超级大帅比！</h1>

        <!-- 墨宝的修改 -->
        <!-- <h1>墨宝才是第一美少女！</h1> -->

        <!-- XDB的修改 三者产生冲突 需要放弃两个版本 -->
        <!-- 毕竟是发布的主分支 就采用墨杉原来的版本！ -->

        <!-- <h1>唄吧你个隆叮咚啊！</h1> -->
        <!-- <h1>XDB才是最帅的！</h1> -->

        <div id="皮一下">
            <p>
                假设今天工作已经完成了 领导要检查我的代码
            </p>
            <p>
                不可能直接抱着电脑过去吧！
            </p><br>
            <p>
                我需要将写好的代码通过Git提交到某个服务器上去保存
                <br>
                所以需要使用Git做一些基本控制！
            </p><br>
            <!-- 产品经理是个大傻瓜！ -->
            <p>
                我突然发现我在注释里写了项目经理的坏话 忘删了
                <br>
                还不小心add了 完蛋了！
            </p>
            <br>
            <p>
                其实不用慌 可以通过git的相关指令还原到上次提交前的版本
                <br>
                当然 如果已经提交了 emmmm... 删库跑路吧！
            </p>
            <br>
            <p>
                通过git log日志信息 可以强制返回到任意想回到的提交版本
            </p>
            <br>
            <p>
                我们写完一个项目 需要发布 让普通用户可以看到
                <br>
                但是在内部还有一套测试代码 即开发预览版
                <br>
                这就涉及到分支的问题： 发布的版本一般是主分支的版本 测试版放在其他分支里
            </p>
        </div>
    </main>

    <nav id="left">
        <pre style="font-size: 20px;color: #fff;">           Git主线的基本操作</pre>
        <pre>   git init // git 项目初始化 </pre>
        <pre>   git status // 查看文件状态（保存或没保存） </pre>
        <pre>   git add . // 添加所有文件 </pre>
        <pre>   git add 文件名 // 添加单个文件 </pre>
        <pre>   git commit -m "描述信息" // 提交到本地仓库</pre>
        <pre>   git restore 文件名 // 还原到上次提交之前 </pre>
        <pre>   git log // 日志信息 获取版本号 </pre>
        <pre>   git log 只能查看本次提交之前的版本 有局限性 </pre>
        <pre>   git reset -- hard 版本号 // 还原到某个版本 </pre>
        <pre>   git reflog // 比log更强大的日志记录 可用于版本反复横跳</pre>
        <pre>   git diff // 查看所有文件的修改记录</pre>

        <pre style="font-size: 20px;color: #fff;">           github远程服务器相关操作</pre>
        <pre>   ssh-keygen -t rsa -C "邮箱地址" // 获取秘钥</pre>
        <pre>   需要关联远程仓库才能进行操作</pre>
        <pre>   git remote add origin 仓库地址</pre>
        <pre>   git push origin 分支 // 把文件推入仓库</pre>
        <pre>   但是这里会出问题 第一次上传会被拒绝访问</pre>
        <pre>   原因是 上传文件之后会把创建仓库时自带的文件覆盖了</pre>
        <pre>   解决办法：把那个文件先拉到本地 再一起上传！</pre>
        <pre>   git pull origin 分支</pre>
        <pre>   这时候又有问题了 也被拒绝了！原因是 之前没有访问过，所以不给你拿！</pre>
        <pre>   这就很蛋疼 就像第一次找工作需要工作经验一样 没工作哪来的经验！</pre>
        <pre>   解决办法： 活用百度！git 指令系统很庞大 非专业人士不可能去研究这么深入 我们也只是用一下常用的那些指令！</pre>
        <pre>   git pull origin 分支 --allow-unrelated-histories // 解除访问限制</pre>
        <pre>   git clone 项目地址 // 下载别人的开源代码</pre>
    </nav>

    <nav id="right">
        <pre style="font-size: 20px;color: #fff;">           Git分支的基本操作</pre>
        <pre>   git branch // 查看当前分支情况 </pre>
        <pre>   git branch 分支名 // 新建一个分支 </pre>
        <pre>   git checkout 分支名 // 切换分支 </pre>
        <pre>   为什么要用新分支 假如我需要修改这些代码的bug</pre>
        <pre>   但是担心直接在主分支里改崩了 那就放到bug分支里去改</pre>
        <pre>   这样，就算改崩了也不影响主分支的代码</pre>
        <pre>   新建分支的目的就是为了合并分支 不能合并 分支就没有意义了</pre>
        <pre>   git checkout a分支</pre>
        <pre>   git merge b分支 // 把b分支合并到a</pre>
        <pre>   而且各分支的提交记录也互不干扰！</pre>
        <pre>   git branch -d 分支名 // 删除分支</pre>
        <pre>   完成工作的时候 需要将本地分支与远程分支同步</pre>
        <pre>   git push origin 远程分支：对应的本地分支</pre>
        <pre>   但是！ 实际工作中是没有权限操作主分支和dev分支的</pre>
        <pre>   就需要把自己的分支在远程 通过Pull Requests 申请合并到主要分支上去！</pre>
        <pre>   git tag v1.01 // 创建分支版本号 可替代很长的hash值</pre>
        <pre>   git tag v1.00 某个版本hash值// 给指定版本添加版本号</pre>
        <pre>   git show 创建的版本号 // 查看指定版本的diff信息</pre>
        <pre>   git tag -a 版本号 -m "日志描述信息" 日志hash值 // 为某个版本日志增加描述信息</pre>
        <pre>   git tag -d 版本号 // 删除某个版本</pre>
        <pre>   git log --graph // 让log 信息更美观一点</pre>
    </nav>


    <input type="number" name="add" id="in" placeholder="请输入一个数！">
    <br><button id="btn">倒序</button>

    <p id="answer">这里是结果！</p>
    <script src="./src/js/index.js"></script>

    <script>
        // 在dev分支里写一个最熟悉的功能
        // 写一行我们最拿手的代码
        console.log('狗修金萨玛，您要吃点嘛？')
        console.log('唄吧你个隆叮咚啊！')

        // 个人分支上保存一个完整的自测通过的功能

        // 然后在个人分支上再新建分支进行一些新的操作

        // 然后过河拆桥 把那些工具分支删除

        function add(x, y) {
            return x + y
        }
    </script>
</body>

</html>